#include "../src/linkqueue/linkqueue.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* 声明底层栈的函数库 */
extern func_LinkQueue fun_LinkQueue;

#define CAPACITY 10

int main(int argc, const char *argv[])
{
    int i = 0;
    int a[CAPACITY] = {0};

    LinkQueue *queue = fun_LinkQueue.create();
    if (queue == NULL)
        return -1;

    // 压栈
    printf("入栈的数据为 ：");
    for (i = 0; i < CAPACITY; i++)
    {
        a[i] = i + 1;
        printf("%d ", a[i]);
        fun_LinkQueue.append(queue, &a[i]);
    }
    printf("\n\n");

    printf("目前长度为 ： %d\n", fun_LinkQueue.length(queue));
    printf("栈顶数据为 ： %d\n", *((int *)fun_LinkQueue.header(queue)));
    printf("\n");

    printf("出栈的数据为 ：");
    while (fun_LinkQueue.length(queue) > 0)
    {
        LinkQueueNode *tmp = fun_LinkQueue.subtract(queue);
        printf("%d ", *((int *)tmp));
    }
    printf("\n\n");

    return 0;
}
